package com.cake.liulanxiangzhu.service;

import com.cake.liulanxiangzhu.pojo.dto.OmsCartDTO;
import com.cake.liulanxiangzhu.pojo.dto.OmsCartUpdateDTO;
import com.cake.liulanxiangzhu.pojo.vo.OmsCartVO;
import com.cake.liulanxiangzhu.web.JsonPage;
import org.apache.ibatis.annotations.Param;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * 购物车信息表(OmsCart)表服务接口
 *
 * @author dinghao
 * @since 2023-03-29 09:18:13
 */
public interface OmsCartService {

    /**
     * 通过ID查询单条数据
     *
     * @param cartId 主键
     * @return 实例对象
     */
    OmsCartVO queryById(Integer cartId);


    /**
     * 购物车列表分页查询
     *
     * @param request 筛选条件
     * @return 查询结果
     */
    JsonPage<OmsCartVO> queryByPage(HttpServletRequest request, Integer page , Integer pageSize);

    /**
     * 购物车列表分页查询
     * @return 查询结果
     */
    JsonPage<OmsCartVO> queryAdminByPage(Integer page , Integer pageSize);


    /**
     * 新增数据
     *
     * @param request
     * @param omsCartDto 实例对象
     * @return 实例对象
     */
    void insert(HttpServletRequest request, OmsCartDTO omsCartDto);

    /**
     * 购物车批量新增
     *
     * @param omsCartDTOS 实例对象
     * @return 实例对象
     */
    void insertBatchCart(List<OmsCartDTO> omsCartDTOS);

    /**
     * 修改数据
     *
     * @param omsCartUpdateDto 实例对象
     * @return 实例对象
     */
    void update(OmsCartUpdateDTO omsCartUpdateDto);

    /**
     * 通过主键删除数据
     *
     * @param cartId 主键
     * @return 是否成功
     */
    void deleteById(Integer cartId);

    /**
     * 通过主键删除数据
     *
     * @param cartIds 主键
     * @return 是否成功
     */
    void deleteByIdBatch(@Param("cartIds") List<Integer> cartIds);


}
